package com.app.abby.perfectweather.view.fragment;

import android.app.Notification;
import android.content.Intent;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.Preference;

import android.preference.PreferenceFragment;
import android.support.annotation.Nullable;
import android.widget.Toast;

import com.app.abby.perfectweather.Constants;
import com.app.abby.perfectweather.R;
import com.app.abby.perfectweather.activity.TextActivity;
import com.app.abby.perfectweather.activity.WebActivity;
import com.app.abby.perfectweather.base.WeatherApplication;
import com.app.abby.perfectweather.sevices.WeatherService;
import com.app.abby.perfectweather.util.FileSizeUtil;
import com.app.abby.perfectweather.util.FileUtil;
import com.app.abby.perfectweather.util.SharedPreferenceUtil;

import java.io.File;

import butterknife.BindView;
import butterknife.Unbinder;


/**
 * Created by Abby on 8/21/2017.
 */

public class SettingFragment extends PreferenceFragment implements Preference.OnPreferenceClickListener,
        Preference.OnPreferenceChangeListener{

    private Preference mClearCache;
    private Preference primary;
    private Preference user;
    CheckBoxPreference mNoticicatin;


    @Override
    public void onCreate(Bundle savedInstanceState){

        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.setting);
        mNoticicatin=(CheckBoxPreference)findPreference("noti_bar");
        if (SharedPreferenceUtil.getInstance().getNotificationModel() != Notification.FLAG_ONGOING_EVENT) {
            mNoticicatin.setChecked(false);
        }else {
            mNoticicatin.setChecked(true);
        }

        mNoticicatin.setOnPreferenceChangeListener(this);

        mClearCache=findPreference("clear_cache");
        mClearCache.setOnPreferenceClickListener(this);

        primary=findPreference("primary");
        primary.setOnPreferenceClickListener(this);

        user=findPreference("user");
        user.setOnPreferenceClickListener(this);


    }

    @Override
    public boolean onPreferenceClick(Preference preference){

        if(preference==mClearCache){
            if(FileUtil.delete(new File(WeatherApplication.getAppCacheDir()+"/Cache"))){
                Toast.makeText(WeatherApplication.getAppContext(),"缓存已清除",Toast.LENGTH_SHORT).show();
            }
        } else if(preference == primary){//隐私
            startActivity(new Intent(getActivity(), WebActivity.class).
                    putExtra("web_url", "http://cdcyh.top/privacy.html"));
        }else if(preference == user){//用户协议
            startActivity(new Intent(getActivity(),TextActivity.class).
                    putExtra(Constants.Text, "本政策将帮助您了解以下内容：1、我们如何收集和使用您的个人信息" +
                            "2、我们如何使用 Cookie3、您的个人信息如何存储以及在全球范围转移4、我们如何共享、转让、公开披露您的个人信息5、我们如何保护您的个人信息6、您的权利7、未成年人条款8、本隐私政策时效及如何更新9、如何联系我们10、其他1、我们如何收集和使用您的个人信息个人信息是指以电子或者其他方式记录的能够单独或者与其他信息结合识别特定自然人身份或者反映特定自然人活动情况的各种信息。个人信息及个人敏感信息具体包含的内容参见 GB/T35273《个人信息安全规范》以及GB/T25069-2010 《信息安全技术 术语》在你使用软件及服务的过程中，我们将根据合法、正当、必要的原则，收集信息。我们收集或请你提供的信息将用于：1.保障产品的基础正常运行；2.实现各项功能和服务；3.优化、改善产品和服务；4.保障产品、服务以及用户使用安全；5.遵循法律法规与国家标准的规定。（一）我们直接收集与使用的个人信息我们会按照如下方式收集你在使用服务时主动提供的，以及通过自动化手段收集你在使用功能或接受服务过程中产生的信息：1.保障服务的正常运行当你使用相关服务时，为了保障软件与服务的正常运行，我们会收集你的硬件型号、操作系统版本号、国际移动设备识别码（ IMEI ）、IP 地址、软件版本号、网络接入方式及类型、操作日志等信息。请你了解，这些信息是我们提供服务和保障产品正常运行所必须收集的基本信息。为了实现图片或视频的缓存和使用，降低流量消耗，我们会请求使用手机存储的权限，拒绝同意该权限会使你无法实现上述功能，但不影响功能与服务的正常使用。2.注册、认证、登录相关服务（1）当你注册、登录及相关服务时，你可以通过手机号创建账号，我们将通过发送短信验证码来验证你的身份是否有效，并且你可完善相关的网络身份识别信息（如头像、昵称和密码），收集这些信息是为了帮助你完成注册。你还可根据自身需求选择填写性别、生日、介绍等信息完善你的个人信息。（2）你也可以使用第三方账号（如微信、QQ、微博账号等）登录，你此时将授权我们获取你在第三方平台注册的公开信息（头像、昵称等），并在你同意本隐私政策后将你的第三方账号与你的账户绑定，使你可以通过第三方账号直接登录并使用本产品和相关服务。（3）在你使用发布内容等需进行身份认证的功能或服务时，根据中华人民共和国相关法律法规，你可能需要提供你的真实身份信息（真实姓名、身份证号码、电话号码等）以完成实名验证。如你不提供这些信息，你将不能使用相关功能，但你可以继续使用的其他服务。这些信息属于个人敏感信息，我们将采用行业内通行的方式及尽最大的商业努力来保护你个人敏感信息的安全。如果你不提供这些信息，你将可能无法获得相关服务，但不影响其他功能与服务的正常使用。3.为你推荐个性化的图文内容个性化推荐是核心的功能之一。为实现这一功能，我们可能会收集并使用下列信息：（1）关注、搜索、浏览偏好（例如：你感兴趣的文章）等你的操作、使用行为信息；（2）发布、点赞、评论等你主动提供的信息；（3）注册时填写的性别、生日等个人信息。（4）获得你的明示同意后的 WIFI 状态、电话状态、地理位置信息。拒绝提供地理位置信息仅会使你无法使用上述功能，但不影响其他功能与服务的正常使用。我们可能会将上述信息与来自我们其他服务的信息结合，进行综合统计并通过算法做特征与偏好分析，用以向你进行个性化推荐、展示或推送你可能感兴趣的特定内容，或者推送更合适你的特定功能或服务：（1）向你展示、推荐或推送与你有更高相关程度的图文内容；（2）推荐与你相关程度更高的程序化广告。请你了解，我们收集、使用上述信息时进行了去标识化处理，数据分析仅对应特定的、无法直接关联用户身份的编码，无法也绝不会与你的真实身份相关联。4.为你提供内容发布功能或服务你主动发布内容、评论时，我们将收集相关内容信息，并展示你的昵称、头像等。（1）你发布图文内容时，我们会请求你授权相机、照片、读取外部存储、等敏感权限。你如果拒绝授权提供，将无法使用此功能，但不影响你正常使用其他功能。5.为你提供互动功能或服务（1）你主动关注你感兴趣的账号并与其他账号进行互动，进行评论或分享内容时，我们会收集你关注的账号，并向你展示你关注账号发布内容。（2）你使用推荐通讯录好友功能时，在获得你的明示同意后，我们会将你通讯录中的信息进行高强度加密算法处理后，用于向你推荐通信录中的好友。通讯录信息属于个人敏感信息，拒绝提供该信息仅会使你无法使用上述功能，但不影响你正常使用相关服务的其他功能。6.为你提供搜索服务你使用搜索服务时，我们会收集你的搜索关键字信息、日志记录等。为了提供高效的搜索服务，部分前述信息会暂时存储在你的本地存储设备之中，并可向你展示搜索结果内容、搜索历史记录。7.帮助你购买、查询、使用虚拟财产为了方便你查询虚拟财产，并尽量降低可能存在的风险，【我的钱包】会记录充值、余额与使用情况。这些信息是你使用钱包功能所必需，拒绝提供会使你无法使用钱包功能，但不影响你正常使用其他功能。8.保障产品、服务及用户使用安全为帮助我们更好地了解相关服务的运行情况，以便确保运行与提供服务的安全，我们可能记录网络日志信息，" +
                            "以及使用软件及相关服务的频率、崩溃数据、总体安装、使用情况、性能数据等信息。")
                    .putExtra(Constants.TITLE,"用户协议"));
        }

        return true;
    }

    @Override
    public boolean onPreferenceChange(Preference preference,Object newValue){

        if(preference==mNoticicatin){
            SharedPreferenceUtil.getInstance().setNotificationModel((boolean) newValue ? Notification.FLAG_ONGOING_EVENT : Notification.FLAG_AUTO_CANCEL);
            Toast.makeText(WeatherApplication.getAppContext(),"更改成功,重启应用后生效",Toast.LENGTH_SHORT).show();
        }
        return true;
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();


    }


}
